﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using Poi.NET.poifs.common;
using Poi.NET.util;

namespace Poi.NET.poifs.storage
{
    /**
     * Constants used in reading/writing the header block
     * 
     * @author Marc Johnson (adapted by Josh Fornwall)
     */
    public interface HeaderBlockConstants
    {
        public static readonly ulong _signature          = 0xE11AB1A1E011CFD0L;
        public static readonly int _bat_array_offset    = 0x4c;
        public static readonly int _max_bats_in_header  = (POIFSConstants.BIG_BLOCK_SIZE - _bat_array_offset) / LittleEndianConsts.INT_SIZE;

        //useful offsets
        public static readonly int _signature_offset    = 0;
        public static readonly int _bat_count_offset = 0x2C;
        public static readonly int _property_start_offset = 0x30;
        public static readonly int _sbat_start_offset = 0x3C;
        public static readonly int _sbat_block_count_offset = 0x40;
        public static readonly int _xbat_start_offset = 0x44;
        public static readonly int _xbat_count_offset = 0x48;
    } // end public interface HeaderBlockConstants
}
